package com.zp.self.module.level_1_问道.I_Java基础.I_7_JDK8新功能.函数式编程;

import org.junit.Test;

import java.util.function.BiFunction;

//函数型接口 :接收一个参数，返回一个结果。R apply(T t);
//接口描述：通过姓、名，返回拼接后的姓名
@FunctionalInterface
interface  CombinationName{
    String fullName(String xing, String name);
}

public class 函数型接口_测试 {
    //接收一个取名接口实现，传入姓、名; 打印函数型接口的返回值
    private void FunctionMethodTest(BiFunction<String,String,String> biFunction) {
        System.out.println("组合姓、名结果：" + biFunction.apply("赖恩.纳多","迪卡.普里奥")); //打印：赖恩迪卡
    }

    @Test
    public void tesSupplier() {
        //测试：【匿名内部类】 实现--截取姓、名的前缀，生成名字 
        FunctionMethodTest((s1,s2) -> {
            return s1.substring(0, !s1.contains(".") ?s1.length():s1.indexOf("."))
                    + s2.substring(0, !s2.contains(".") ?s2.length():s2.indexOf("."));
        });
    }
}